基于halcon将深度图转换成点云图并保存

您所在的位置:网站首页 halcon region数组怎么保存 基于halcon将深度图转换成点云图并保存

基于halcon将深度图转换成点云图并保存

2024-03-28 16:09| 来源: 网络整理| 查看: 265

能力有限不足之处或者可优化之处还望多多指教!

*首先是读取图像

 read_image (Image, './deep/20.tif')  

*创建个roi区域并保存

gen_rectangle1 (ROI_0, 1.0544, 161.358, 775.148, 1281.81)   write_tuple ([450.0544, 238.358, 1455.148, 1131.81], './param/roi.tup')

file_exists ('./param/roi.tup', roiFileExists1) if (not roiFileExists1)     RunMessage := 'roi文件不存在'     return () endif read_tuple ('./param/roi.tup', roiTuple) tuple_length (roiTuple, Length1) if (Length1 == 0)     RunMessage := 'roi文件格式错误,请检查文件'     return () endif

get_image_size (ImageOut, Width, Height) threshold (ImageOut, Region7, 1000, 2050) * region_features (Region7, 'area', Value1) * if (Value1>2000) *     paint_region (Region7, ImageOut, ImageOut, -32768, 'fill') *     median_image (ImageOut, ImageOut, 'circle', 1, 'mirrored') * endif gen_rectangle1 (Rectangle, roiTuple[0], roiTuple[1], roiTuple[2], roiTuple[3]) reduce_domain (ImageOut, Rectangle, ImageReduced) regiongrowing (ImageReduced, Regions1, 3, 3, 5, 50) select_shape (Regions1, SelectedRegions4, 'area', 'and', 10000, 99999) select_shape (SelectedRegions4, SelectedRegions5, 'height', 'and', 50, 500) shape_trans (SelectedRegions5, RegionTrans, 'rectangle2') boundary (RegionTrans, RegionBorder, 'inner')

dilation_circle (RegionBorder, RegionDilation, 1.5) paint_region (RegionDilation, intensity, ImageResult, [255,0,0], 'fill') tupleX:=[] tupleY:=[] tupleZ:=[] get_image_size (ImageResult, Width1, Height1) for Index3 := 0 to Width1-3 by 3     for Index4 := 0 to Height1-3 by 3         get_grayval (ImageResult, Index4, Index3, Grayval)         if (Grayval>1500)             tupleX:=[tupleX,Index3]             tupleY:=[tupleY,Index4]             tupleZ:=[tupleZ,Grayval]         endif     endfor endfor gen_object_model_3d_from_points (tupleX, tupleY, tupleZ, ObjectModel3D1)

connection_object_model_3d (ObjectModel3D1, 'distance_3d', 5, ObjectModel3DConnected) select_object_model_3d (ObjectModel3DConnected, 'num_points', 'and', 1000, 100000, ObjectModel3D2) *dev_open_window (0, 0, Width, Height, 'black', WindowHandle1) *visualize_object_model_3d (WindowHandle1,[ObjectModel3D1,ObjectModel3D2], [],[], ['color_0','color_1','alpha_1','disp_pose'], ['green','gray',0.5,'true'],'RectBOX', [], [], Pose)  union_object_model_3d (ObjectModel3D2, 'points_surface', UnionObjectModel3D)

*保存点云

write_object_model_3d (UnionObjectModel3D, 'ply', 'D:/YG/yuan20.ply', [], [])  



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3